const schedule = require('node-schedule');
const { resetAllUsersDailyExp, cleanupOldExpRecords } = require('./userLevelService');

// 初始化定时任务
const initScheduleTasks = () => {
  console.log('初始化定时任务...');

  // 每天凌晨0点0分0秒重置用户每日经验值
  schedule.scheduleJob('0 0 0 * * *', async () => {
    console.log('执行每日经验值重置任务:', new Date());
    try {
      await resetAllUsersDailyExp();
      console.log('每日经验值重置完成');
    } catch (error) {
      console.error('每日经验值重置失败:', error);
    }
  });

  // 每天凌晨0点0分5秒清理上一日及更早的经验记录（可调保留天数）
  schedule.scheduleJob('5 0 0 * * *', async () => {
    console.log('执行清理过期经验记录任务:', new Date());
    try {
      // 默认不保留历史，若需保留最近N天可传入N
      await cleanupOldExpRecords(0);
      console.log('清理过期经验记录完成');
    } catch (error) {
      console.error('清理过期经验记录失败:', error);
    }
  });

  console.log('定时任务初始化完成');
};

module.exports = {
  initScheduleTasks
}; 